事例:Fix escape of filenames in bundle doctor
https://github.com/rubygems/rubygems/pull/5102
問題
bundler doctorコマンドが実行される際にインストールされているgemのなかから*.bundleのファイルが探索される
見つけた結果から実行される/usr/bin/otool -L "#{path}"がescapeされていない
/usr/bin/ldd "#{path}"も同様
$(date).bundleのようなファイルがあるとshell injectionとなった
細工されたgemがインストールされている時点で危険であるため、相対的に危険度は少ない
修正
Shellwordsを利用してエスケープ
CVEなし
#bundler
#事例